Windows 環境下的單節點 Elasticsearch 安裝指南
TLDR
- 建議將
path.data與path.logs設定在安裝目錄之外,以便於後續版本升級。 - JVM 記憶體建議設定為系統可用記憶體的 50%,且
-Xms與-Xmx應設為相同數值以避免效能損耗。 network.host設定為0.0.0.0可允許外部連線,但需注意安全性。- SSL 與 x.509 憑證路徑必須相對於
config目錄,使用絕對路徑會導致服務無法啟動。 - 憑證密碼應透過
elasticsearch-keystore工具管理,而非直接寫入設定檔。 - 若啟動後
cluster_uuid顯示_na_,請檢查cluster.initial_master_nodes設定。
基本設定與最佳實踐
YAML 設定檔 (config/elasticsearch.yml)
在進行基礎配置時,建議將資料與記錄檔路徑指向安裝目錄以外的位置,這能確保在進行小版本升級時,能直接將新安裝的 Elasticsearch 指向既有的資料目錄。
- 節點與叢集:設定
node.name以利識別;首次建立叢集時,必須設定cluster.initial_master_nodes。 - 網路與 CORS:若需允許外部存取,將
network.host設為0.0.0.0。若有前端跨域需求,可啟用http.cors.enabled並設定http.cors.allow-origin。
JVM 記憶體調整 (config/jvm.options)
什麼情況下會遇到效能問題:當 JVM 頻繁進行記憶體重新分配時。
- 建議做法:將
-Xms與-Xmx設定為相同數值。 - 配置原則:記憶體總量不超過系統可用記憶體的 50%,並至少預留 2GB 給作業系統。若記憶體大於 32GB,建議設定為 31GB 以利用 JVM 的指標壓縮技術。
安全性設定:憑證管理
SSL/TLS 憑證配置
什麼情況下會遇到啟動錯誤:當在 elasticsearch.yml 中使用絕對路徑指定憑證位置時。
- 驗證結果:憑證路徑必須相對於
config目錄。 - 憑證密碼管理:應使用
elasticsearch-keystore將密碼加入 keystore,而非明文寫入設定檔:bashelasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
x.509 傳輸層加密
什麼情況下會遇到環境差異:在不同伺服器環境中,部分環境即使未設定 transport SSL 也能運作,但部分環境則強制要求設定。
- 建議做法:若需啟用
xpack.security.transport.ssl,請確保正確設定keystore與truststore路徑,並將verification_mode設為certificate。
TIP
使用 elasticsearch-certutil http 產生的 http.p12 檔案已包含 CA 憑證,可同時作為 Keystore 與 Truststore 使用。系統預設會將 Truststore 指向 Keystore 的設定值。
WARNING
elasticsearch-certutil ca 產生的 CA 憑證檔案不可直接作為 Truststore 使用。此外,所有憑證路徑設定必須相對於 config 目錄,使用絕對路徑會導致服務啟動失敗。
使用者管理
使用內建工具管理存取權限:
- 建立超級使用者:bash
elasticsearch-users useradd {username} -p {password} -r superuser - 注意事項:密碼長度需至少 6 碼。使用者資訊會儲存在
config/users與config/users_roles檔案中。
服務啟動與註冊
若啟動後透過瀏覽器存取 http://localhost:9200 發現 cluster_uuid 為 _na_,代表叢集初始化失敗,請務必檢查 cluster.initial_master_nodes 是否正確對應 node.name。
- 手動啟動:需以系統管理員權限執行
bin/elasticsearch.bat。 - 註冊 Windows 服務:執行
elasticsearch-service.bat install,並於服務管理員中將其設定為「自動」啟動,以確保系統重啟後服務能正常運作。
異動歷程
- 初版文件建立。
- 增加 x.509 憑證設定。
- 補充 keystore 描述。